home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
Z-Misc Series
/
(k)zj.d64
/
src.clock
< prev
next >
Wrap
Text File
|
2007-03-01
|
5KB
|
337 lines
;
;--------------------------------;
; ;
; CLOCK - COMAL MODULE ;
; ;
; CODE BY G.BUSKER ;
; REVISION BY D.KLINGENS / 1.02 ;
; ;
; BOTH FROM ;
; DUTCH COMAL USERS GROUP ;
; ;
; 191186 / 171286 ;
; ;
; * FUNC VERSION'CLOCK$ NOT IM- ;
; PLEMENTED TO SAVE MEMO- ;
; RY SPACE ;
;--------------------------------;
;
*=$7D00
;
.OPT NOSYM, NOLIST
.LIB SYMBOLS
.OPT LIST
;--------------------------------;
; PACKAGE SETUP ;
;--------------------------------;
MAP .BYTE C64+ROMMED
.WORD END
.WORD SIGNAL
;--------------------------------;
; PACKAGE TABLE ;
;--------------------------------;
.BYTE 5,'CLOCK'
.WORD PROCS,DUMMY
.BYTE 0
;--------------------------------;
; PROCEDURE TABLE ;
;--------------------------------;
PROCS .BYTE 8,'SHOWTIME'
.WORD PCSHOW
.BYTE 7,'TIMEPOS'
.WORD PCSPOS
.BYTE 9,'SETROMMED'
.WORD PCSROM
.BYTE 6,'ROMMED'
.WORD PCGROM
.BYTE 9,'TIMECOLOR'
.WORD PCTCOL
;
.BYTE 0
;--------------------------------;
; PROC DEFINITIONS ;
;--------------------------------;
PCSHOW
.BYTE PROC
.WORD CDSHOW
.BYTE 1
.BYTE INT+VALUE
.BYTE ENDPRC
PCSPOS
.BYTE PROC
.WORD CDSPOS
.BYTE 2
.BYTE INT+VALUE
.BYTE INT+VALUE
.BYTE ENDPRC
PCSROM
.BYTE PROC
.WORD CDSROM
.BYTE 1
.BYTE INT+VALUE
.BYTE ENDPRC
PCGROM
.BYTE FUNC+REAL
.WORD CDGROM
.BYTE 0
.BYTE ENDFNC
PCTCOL
.BYTE PROC
.WORD CDTCOL
.BYTE 1
.BYTE INT+VALUE
.BYTE ENDPRC
;--------------------------------;
; SIGNAL ROUTINE ;
;--------------------------------;
SIGNAL CPY #LINK ; PROC
BNE CHK1
SEI
LDX CINV
LDA CINV+1
STX STCINV
STA STCINV+1
LDX #<IRQ
LDA #>IRQ
STX CINV
STA CINV+1
CLI
CHK1 CPY #DSCRD
BNE CHKNOT
LDA MAP
AND #ROMMED
BNE CHKNOT
SEI
LDX STCINV
LDA STCINV+1
STX CINV
STA CINV+1
CLI
CHKNOT RTS ; ENDPROC
;--------------------------------;
; ROUTINES ;
;--------------------------------;
CDSHOW LDA #1 ; PROC
JSR FNDPAR
LDY #0
LDA (COPY1),Y
INY
ORA (COPY1),Y
STA PLTTIM
BNE NOSPC
LDY SCRN
LDA SCRN+1
STY COPY1
STA COPY1+1
LDY #7
LDA #' ' ; SPC
NXTSPC STA (COPY1),Y
DEY
BPL NXTSPC
NOSPC RTS ; ENDPROC
;
CDSPOS LDA #1 ; PROC
JSR FNDPAR ; YCOR
LDY #0
LDA (COPY1),Y
BNE ERR1
INY
LDA (COPY1),Y
CMP #26
BCS ERR1
TAY
LDA #0
LDX #0
NXTLIN DEY
BEQ KLRLIN
CLC
ADC #40
BCC NOINCX
INX
NOINCX JMP NXTLIN
KLRLIN
STA SCRN
STA KLEUR ; COLOR
TXA
CLC
ADC HIBASE
STA SCRN+1
TXA
CLC
ADC #>COLRAM
STA KLEUR+1
LDA #2 ; XCOR
JSR FNDPAR
LDY #0
LDA (COPY1),Y
BNE ERR1
INY
LDA (COPY1),Y
TAX
DEX
TXA
CMP #41
BCS ERR1
CLC
ADC SCRN
BCC NOINCR
INC SCRN+1
INC KLEUR+1
NOINCR STA SCRN
STA KLEUR
RTS ; ENDPROC
;
ERR1 LDX #1 ; PROC
JMP RUNERR ; ENDPROC
;
CDSROM LDA #1 ; PROC
JSR FNDPAR
LDY #0
LDA (COPY1),Y
INY
ORA (COPY1),Y
BEQ NOROM
LDA #ROMMED
ORA MAP
STA MAP
RTS ; ENDPROC
;
NOROM LDA MAP ; SUB
AND #255-ROMMED
STA MAP
RTS ; ENDSUB
;
CDGROM LDA MAP ; PROC
AND #ROMMED
BEQ NOTROM
LDA #1
NOTROM TAY
LDA #0
JSR INTFP
JSR PUSHA1
RTS ; ENDPROC
;
CDTCOL LDA #1 ; PROC
JSR FNDPAR
LDY #0
LDA (COPY1),Y
STA TIMCOL
BMI SKIPIT
INY
LDA (COPY1),Y
STA TIMCOL
CMP #26
BCC SKIPIT
LDA #128
STA TIMCOL
SKIPIT RTS ; ENDPROC
;--------------------------------;
; INTERRUPT ;
;--------------------------------;
IRQ
LDA PLTTIM
BEQ SKIPP
LDA TIMCOL
BPL OKCOL
LDA COLOR
OKCOL
LDX #7
NXTCOL STA COLRAM,X
;
KLEUR=NXTCOL+1
;
DEX
BPL NXTCOL
;--------------------------------;
; PRINT TOD IN COMAL-FORMAT: ;
; HH:MM:SS ;
;--------------------------------;
LDA D1TOD1 ; UPD CLOCK
LDX #7 ;
LDA D1TODS ; SEC
JSR PLOTNR
DEX
LSR A
LSR A
LSR A
LSR A
JSR PLOTNR
DEX
LDA #':'
JSR PLOTNR
DEX
LDA D1TODM ; MIN
JSR PLOTNR
DEX
LSR A
LSR A
LSR A
LSR A
JSR PLOTNR
DEX
LDA #':'
JSR PLOTNR
DEX
;
LDA D1TODH ; HRS
BPL NOTPM
AND #%01111111 ; BIT 7
;
CMP #8 ; 20H
BEQ CH20
CMP #9 ; 21H
BEQ CH21
CMP #18 ; 12H
BEQ CH12
;
CLC ; ADD FOR
ADC #2+16 ; PM
JMP PR
;
CH12 LDA #2+16
JMP PR
;
CH20 LDA #0+32
JMP PR
;
CH21 LDA #1+32
JMP PR
;
NOTPM
CMP #18 ; 24H
BNE PR
LDA #0
;
PR JSR PLOTNR ; PRINT
DEX ; TIME
LSR A
LSR A
LSR A
LSR A
JSR PLOTNR
;
SKIPP JMP (STCINV)
;
PLOTNR PHA ; SUB
AND #%00001111
CLC
ADC #'0' ; SCRNCODE
POKE STA SCREEN,X
;
SCRN=POKE+1
;
PLA
RTS ; ENDSUB
;--------------------------------;
; VARIABLES, ETC. ;
;--------------------------------;
STCINV *=*+2
;
PLTTIM .BYTE 0
TIMCOL .BYTE 128
;
;
; AND FINALLY THE
;
END .END